iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 26
0
Modern Web

Rails guide / Ruby API study系列 第 26

[ Rails guide study ]Day26 Rails Routing part1

  • 分享至 

  • xImage
  •  

[ Rails guide study ] Day26 Rails Routing

首先,來聽首歌吧
Yes
Kt tunstall 真是一個很棒的創作歌手!雖然最近比較少出新歌,比較紅的也都是早期的歌,但在這裡就推薦給大家聽聽看囉!


今天的主要內容都來自這裏,在介紹 Rails 的 routes 寫法

土炮寫法

routes 在 rails 裡面非常重要,就算你的程式寫得再好忘記加上路徑就也沒人能找到你的頁面

最土砲的寫法,就是使用 get 跟 to 來引導到正確的頁面

#routes.rb
get '/patients/:id', to: 'patients#show'

或是可以把 controller 跟 action 寫的更直白

#routes.rb
get '/patients/:id', action: :show, controller: 'patients'

上面這個例子會引導到 patients controller 裡面的 show action,然後 id 會去抓 params[:id] 內容

慣例寫法

不過 routes 最常用的還是使用慣例的 resources 方法,他會幫你產生 7 條常用的路徑如下範例

#routes.rb
resources :photos

當你的這個 controller 並不是複數的時候,也已經幫我們準備好這個慣例了,這種情況下就是少了 index 的頁面

#routes.rb
resource :geocoder

設計慣例 routes

我們還可以在 routes 上面加上一些設計,比方說加上 namespace:

namespace :admin do
  resources :articles
end

除了路徑需要改之外,你的 controller 也要使用 Admin::ArticlesController 來做設定喔

那如果我不想改 controller 只想改路徑勒?

scope '/admin' do
  resources :articles, :comments
end
# 或者
resources :articles, path: '/admin/articles'

如此一來只有路徑會變,controller 不變

那如果我只想改 controller 不想改路徑呢?

scope module: 'admin' do
  resources :articles, :comments
end
# 或者
resources :articles, path: '/admin/articles'

如此一般,你的路徑還是不變,但 controller 已經變成 Admin::ArticlesController 囉

今天的內容就到這裡囉~我們明天見!

參考資料:

Rails Guide

本文章同步分享於 http://anthonychao.site/


上一篇
[ Rails guide study ]Day25 Action View Form Helpers
下一篇
[ Rails guide study ]Day27 Rails Routing part2
系列文
Rails guide / Ruby API study30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言